home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Scope / Scope Disk #017 (199x)(Scope PD)(US)[WB].zip / Scope Disk #017 (199x)(Scope PD)(US)[WB].adf / du361m2 / M2Du361.docs < prev    next >
Text File  |  1988-06-23  |  18KB  |  486 lines

  1. M2Du 3.61
  2. ~~~~~~~~~
  3.  - By Greg Browne - 1821 Ocotillo, Alamogordo NM 88310  (505) 437-0807
  4.  
  5. DirUtil in Modula-2 - 50-1000 files CLI or WB
  6.  Last modified - 6/24/88
  7.  
  8. CONTACT:
  9.  
  10. CIS [72250,106]
  11. Alamo FastKode ROS (505)-437-2280 (24 hr 300-9600 baud)
  12. New Horizons (505)-437-9117 (7pm-8am 300-2400)
  13.  
  14. DISCLAIMER:
  15.  I am not responsible for anything! Use at your own risk.
  16.  
  17. P.D. NOTICE:
  18.  This executible is placed in the public domain. FREE!
  19.  
  20. THANKS:
  21.  Richie Bielack, Martin Taillefer, Matt Dillon, Brett Blevins,
  22.  Jim Kunzman, Chuck Layton, Rick Sinars and others for various reasons.
  23.  
  24. WARNING -  *MAJOR* CHANGES BACK IN 3.42.
  25.  
  26. +++++++++++++++++
  27. GENERAL OPERATION
  28. +++++++++++++++++
  29.  
  30. CLITail:
  31. Accepts arguments (not in WB yet):
  32.   i = Incr max files-per-dir by 50 (multiple 'i' ok).
  33.   d = Decr max files-per-dir by 50 (multiple 'd' ok).
  34.   b = Window to BOTTOM half of SCREEN (if INTERLACED).
  35.  
  36. COMMAND ACTIVATION:
  37. LEFT & RIGHT mouse button press & RELEASE over gadget (or name) to register.
  38.  
  39. CONFIRMING:
  40. Messy & destructive commands need confirmation.  When asked to "HIT (name)
  41. again", USE THE LEFT MOUSEBUTTON.  The right mousebutton will NOT confirm
  42. actions, even those started with the right mousebutton.
  43.  
  44.  
  45. INTERRUPTING:
  46. Multi-actions interrupt by clicking a gadget (including filewindow) with the
  47. LEFT mousebutton.  Stop is AFTER current pass is complete. When the alternate
  48. pointer is visible, clicks are ONLY interrupts.
  49.  
  50. Getting files interrupts with a click in the filewindow. If directory has
  51. too many files, you will be warned.
  52.  
  53. EXECUTE/RUN:
  54. DO, EDIT, & SHOWIFF execute sequentially (prevent disk grinding) until the
  55. last (or only) action. Then RUN >NIL: is used to free up Du. When commands
  56. finish, they do NOT re-read the directory (save more grinding when command
  57. is RUN).  Use hidden 'S' gadget to re-read.
  58.  
  59.  
  60. TITLE BAR:
  61.  nnn/tttt  Time 00:00   R-0   Chip nnnnnn  Fast nnnnnnn  Total  nnnnnnnn
  62. ---------  ----------   ---   ------------------------------------------
  63. current      24 hr       Which              Memory availability
  64.   files/max    format      history item active
  65.  
  66. INITIAL DIRECTORY:
  67. Logs into ram: if run from WorkBench. Logs into Current Dir from CLI.
  68.  
  69. SIZING WINDOW:
  70. Normal AND 'hidden' gadget. Instantly shrink by clicking the open space
  71. below the title bar. Unshrink by clicking hanging space below the title in
  72. the tiny window.  Tiny window moves - remembers where it was.
  73.  
  74. DEVICE GADGETS: -> df0: df1: ... etc.
  75. LEFT mouse  = put this into S with immediate 'GET'.
  76. RIGHT mouse = put this into the D gadget.  [Patchable. See end of this doc]
  77.  
  78. FILEWINDOW GADGET:
  79. Click unselected file OR dir and it is "selected". Click a selected name to
  80. unselect it. Most actions need "selected" things to work.
  81.  
  82. NOTE: Any/all filenames AND/OR DIRS may be selected at once.
  83.       See "HIDDEN GADGETS" for a 'HOLD' feature in display.
  84.  
  85. SLIDER GADGET:
  86. Scroll filename window. If slider is filled, all files and directories are
  87. displayed.
  88.  
  89. /\ and \/:
  90.  LEFT mouse  = move 1 file in arrow direction
  91.  RIGHT mouse = move 1 SCREEN in arrow direction
  92.  
  93. MULTIPLE R GADGETS (HISTORY):
  94. 'R' holds a circular list of 10 strings. "R+ R-" scrolls them, and R#:n in
  95. title bar tells which one is in use. Startup looks for a file named Du.hist
  96. in the current directory, and if not found, in the S: directory. FIRST one
  97. found will be used to initialize the strings to = the first 10 lines of the
  98. file. If NEITHER found, all R gadgets will be empty.  The file is just
  99. lines in plain text, and anything over 10 lines will be ignored. A sample
  100. file is included.
  101.  
  102. History changes must be typed in AND <ENTER>ed while program waits for
  103. normal gadget activity to be permanent.  Remember, while commands are going
  104. on, the program only looks at gadget selection as an interrupt.  Changes
  105. made during activity, OR ended without <ENTER>ing will be TEMPORARY. Then,
  106. scrolling history +- will return last saved history for that item.
  107. Experiment with it.
  108.  
  109. STRING I/O GADGETS: ->  R  S  D
  110.  
  111. All are 255 characters long, but only part of string is seen. To view a
  112. long string, activate the gadget, and use arrows to move through it.
  113.  
  114. (R)un holds command line info for RUN f<ile>+R.  May also be used alone
  115.  OR as the lead item in a command with highlighted file as tail if RUN
  116.  R+f<ile> used. SEE ALSO HISTORY ABOVE AND THE 'R+ R-' button section.
  117.  
  118. (S)ource holds name of the current active device or dir. LEFT mouseclick a
  119.  device gadget and its goes here. CLICK, TYPE, AND <ENTER> in this gadget,
  120.  and your entry will be new current device or dir. If access to it fails,
  121.  the program returns to the last good active dir (or to ram: if that fails).
  122.  Click the RIGHT mousebutton IN the box and a PARENT command is done.
  123.  
  124. (D)estination holds the name of the path (filename in some cases) to use
  125.  for certain GADGET functions. Clicking the RIGHT mousebutton IN the box
  126.  backs the name up to its PARENT level (if any).
  127.  
  128. The Message area at the bottom is NOT a gadget.
  129.  
  130. HIDDEN GADGETS:
  131. Click LEFT mousebutton on LETTER 'R' or 'D' to blank contents of the box.
  132. Click LETTER 'S' for directory re-read of 'S'.
  133. RIGHT mouse on "S" toggles mode and color.
  134.   Black (original color) means re-reads always display from file number 1.
  135.   Green (same as device names) means re-reads try to display from the same
  136.   position as last one. [For comparing similar directories or seeing changes
  137.   in the middle of one.]
  138.  
  139. Finally, there is another unmarked gadget mentioned.
  140. Find it yourself (may encourage someone to read this stuff).
  141.  
  142.  
  143. +++++++++++++++
  144. BUTTON GADGETS: (alphabetically - sortof) Gadgets NOT alphabetic on screen
  145. +++++++++++++++
  146.  
  147.   COPY     (Multifile - consecutive)
  148.   ----
  149. Copy any/all selected file(s) to PATH in D (must be a valid device or dir).
  150. Multiple copy supported, copy to specific filename not supported. Checks
  151. PROTECT gadget setting.
  152.  LEFT mouse  = STOP if file status does not match PROTECT gadget.
  153.  RIGHT mouse = SKIP that file and go on.
  154.  
  155.  
  156.   COPYALL  (CONFIRMED) (Mass file/directory copy)
  157.   -------
  158. Copy entire dir/disk contents, matching tree structure on the fly.  Put
  159. base level source dir name in S and the base dest PATH in D and select
  160. COPYALL (and confirm). This copies EVERYTHING in S AND ITS SUBDIRECTORIES
  161. to D, creating directories as it goes. IF destination fills, you will have
  162. a chance to change disks and continue.
  163.  
  164.  Ex: Copy entire disk (like COPY df0: to df1: all)
  165.        type 'df0:' in S and 'df1:' in D and go.
  166.      Copy devs directory
  167.        Put 'df0:devs' in S and 'df1:devs' (existing OR NOT) in D, and
  168.        start. Creates (if needed) destination directory, copies all files,
  169.        creates df1:devs/printers (if needed) and copies all its files.
  170.  
  171. Specifically confirmed, DOES NOT check PROTECT setting.
  172.  
  173.   COPYif  (CONFIRMED)
  174.   ------
  175. Just like COPYALL, BUT with attention to ARC bit of source FILE's protection
  176. bits. If bit is CLEAR (file changed since last set) it WILL copy the file.
  177. If a DIRECTORY bit is SET it doesn't even go into that directory.
  178.  LEFT mouse  = SET source ARC bit after copy done
  179.  RIGHT mouse = DON'T mess with ARC bit
  180.  
  181.   DELDIR  (CONFIRMED)
  182.   ------
  183. DIRECTORY delete. To work, dir must be selected and EMPTY. ANY/ALL
  184. highlighted directories will be deleted if empty.
  185.  LEFT mouse  = stop if a directory doesn't delete.
  186.  RIGHT mouse = continues EVEN if a directory doesn't delete
  187.  
  188.   DELETE   (CONFIRMED) (Multifile - consecutive)
  189.   ------
  190. FILE delete. Any/all files currently highlighted will be deleted. Message
  191. area shows progress, and delete may be stopped by clicking left mouse
  192. button on any gadget (including filewindow).
  193.  
  194.   DSKCOPY  (CONFIRMED)
  195.   -------
  196. Diskcopy 'S' to 'D'  - BOTH MUST BE df0-df3.  Corrects date so DOS won't be
  197. confused.  IS Interruptible.
  198.  LEFT mouse  = NOVERIFY
  199.  RIGHT mouse = VERIFY
  200.  
  201.   DSKWIPE   (CONFIRMED)
  202.   -------
  203. QUICK WIPE OF disk in 'D'.  MUST BE df0-df3.  Writes fresh root block.
  204.  LEFT mouse  = NOVERIFY
  205.  RIGHT mouse = VERIFY
  206.  
  207.  
  208.   DO f+R  DO R+f   (Multifile - consecutive)
  209.   ------  ------
  210. RUN/EXECUTE command.
  211.  DO R+f executes the 'R' contents with selected items as a tails.
  212.  DO f+R executes selected items with the 'R' content as a tail.
  213.  If no item is selected, both try the R gadget alone.
  214. Uses DOS Execute (like typing a command at > prompt). Also whether command
  215. is RUN or executed depends on other things (more info in first section).
  216. This is NOT like script handler 'EXECUTE'.
  217.  
  218. *DOES* INCLUDE HIGHLIGHTED DIRECTORY NAMES IN THE ACTIONS
  219.  
  220.   EDIT     (Multifile - consecutive)
  221.   ----
  222. Start editor with selected FILEname(s) as tail(s). If no file selected,
  223. editor will be RUN with no file.  Expects editor named 'dme' in normal
  224. search path and uses the same Execute/Run logic as DO buttons (SEE
  225. PATCHING).
  226.  
  227.   FORMAT
  228.   ------
  229. FORMAT disk indicated in 'D'.  MUST BE df0-df3. Names disk "New" and uses
  230. current date.  DOES INSTALL as bootable. IS Interruptible.
  231.  LEFT mouse  = NOVERIFY
  232.  RIGHT mouse = VERIFY
  233.  
  234.   F+ F-
  235.   -----
  236. Change #files-per-directory handled by DU.
  237.  LEFT mouse  = increase 50
  238.  RIGHT mouse = decrease 50. (More files = more memory used.)
  239.  
  240.   GETDIR   (NO SUCH GADGET)
  241.   ------
  242. GETDIR by clicking the RIGHT mouse button over its name.
  243.  
  244.   HPRINT  HTYPE  PRINT  TYPE
  245.   ------  -----  -----  ----
  246. ASCII/HEX file view/print. Destination of PRINT/HPRINT selected with toggle
  247. gadget PRT: (See TOGGLES/FLAGS section). Multiple hardcopy runs interrupt
  248. the same way as other functions. To scroll back and forth in file during
  249. screen output, click left mouse down in upper or lower part of window, or
  250. use scroll bar. Click title bar to quit or interrupt an individual printout
  251. or display. Tabs expanded on 8 columns. NO color sequences or formfeeds.
  252. Line xx of xxx shown in the title bar.  For PRINT this is 256 byte blocks
  253. NOT lines.
  254.  
  255. NOTE:
  256.  If PRINT/HPRINT selected with RIGHT mouse, formfeed will be sent after
  257.  each file.
  258.  
  259.   INFO
  260.   ----
  261. LEFT mouse  = FREE space S and/or D
  262. RIGHT mouse = USED space S and/or D.  Both show volume name[s].
  263.  
  264.   INSTALL
  265.   -------
  266. INSTALL disk indicated in 'D'.  MUST BE df0-df3. Writes fresh boot block.
  267.  LEFT mouse  = NOVERIFY
  268.  RIGHT mouse = VERIFY
  269.  
  270.   MAKEDIR
  271.   -------
  272. Make dir named in the D gadget (if valid and not existing). If complete
  273. dev:path not given, dir will be made relative to the path in S. Check is
  274. made to insure you are not trying to create a directory with an already
  275. existing name (or over a file).
  276.  LEFT mouse  = DO re-read S when done
  277.  RIGHT mouse = DON'T re-read.
  278.  
  279.   MOVE     (Multifile - consecutive)
  280.   ----
  281. MOVE items to destination (must be path). Tries RENAME. If that fails, and
  282. 'item' is NOT a directory, tries copy-and-delete-source. DOES check state
  283. of the PROTECT gadget.
  284.  LEFT mouse  = STOP if item does not match PROTECT gadget status
  285.  RIGHT mouse = SKIP that item and go on.
  286.  
  287. *WARNING* - A bug in the ram-handler lets you rename a file in ram: to an
  288.  existing name in ram: without a DOS error 203 and leaves you 2 in the same
  289.  directory. Just so you will be aware, I didn't try to trap that.
  290.  (* vd0: also does that! *)
  291.  
  292.   OldNew
  293.   ------
  294. Tag files based on destination condition.
  295.  LEFT mouse  = tag files which DO exist at dest end (Old)
  296.  RIGHT mouse = tag files which DO NOT exist at dest end (New).
  297.  
  298.   PARENT
  299.   ------
  300. Click RIGHT mousebutton in 'S' or 'D' box for PARENT.
  301.  
  302.   ROOT
  303.   ----
  304. Back up to the root of the current S or D gadget. If this fails with 'S',
  305. return to the last good current directory (or ram: as a last resort).
  306.   LEFT mouse  = Get ROOT of 'S'
  307.   RIGHT mouse = Backup 'D' to its ROOT level
  308.  
  309.   RELABEL
  310.   -------
  311. Relabel disk in 'S' to NAME in 'D', both in memory and on disk. Internal.
  312. 'D' gadget cannot have ":" or "/" in it.
  313.  
  314.   RENAME
  315.   ------
  316. Rename FIRST selected file OR dir (alphabetically) to Name in the D gadget.
  317. Wherever practical, MOVE is faster.
  318.  LEFT mouse  = re-read directory (since it may be still be there)
  319.  RIGHT mouse = NO re-read (old dropped, new not added even if still there).
  320.  
  321.   TAGALL RETAG FLIPTAG UNTAG
  322.   ------ ----- ------- -----
  323. Mass tag operations on all items in a window.
  324. (In some DU's -> TAGALL = ALL   UNTAG = CLEAR)
  325.  
  326. TAGALL selects ALL items. RETAG after multifile operations reselects any
  327. items selected before (if they remain now). FLIPTAG reverses all tags.
  328. UNTAG clears all tags.
  329.  
  330.  LEFT mouse  = do with FILES.
  331.  RIGHT mouse = do with DIRECTORIES.
  332.  
  333.   SETNOTE
  334.   -------
  335. Set filenote of FIRST HIGHLIGHTED file OR dir. Current R gadget content
  336. will be used as comment.  To delete a comment, empty R gadget and SETNOTE
  337. (to null comment).
  338.  
  339.   SHONOTE
  340.   -------
  341. Show filenote (if any) of FIRST HIGHLIGHTED file. Filenote will be shown in
  342. the message area. If [-no comment-] appears, file has no filenote attached
  343. to it.
  344.  
  345.   SETPROT
  346.   -------
  347. Set protection bits on highlighted FILE(s) OR DIR(s).
  348.   LEFT mouse  = work this on FIRST item found highlighted.
  349.   RIGHT mouse = work this on ALL items highlighted.
  350.  
  351. R gadget must hold letter(s) of bits you want SET. Does NOT consider
  352. CURRENT condition of flags - you must include ALL letters you want set. To
  353. get current status, use SHOPROT. Order of letters does NOT matter. Letters
  354. not present will have their bits CLEARED.
  355.  
  356.  Protection bits are (UPPER or lower case o.k.):
  357.   A(rchive bit)           Currently RESET each time a file is changed
  358.   R(ead protect bit)      Ignored by DOS now
  359.   W(rite protect bit)     Ignored by DOS now
  360.   E(xecute protect bit)   Ignored by DOS now
  361.   D(elete protect bit)    Prevents deletion when SET
  362.  
  363.   SHOPROT
  364.   -------
  365. Shows protection bit status on highlighted file OR directory.
  366. Uses current R gadget, so be careful of History items.
  367.  LEFT mouse  = show NEXT highlighted (and unselect)
  368.  RIGHT mouse = scan quickly through ALL highlighted (and unselect)
  369.  
  370.   SHOWIFF
  371.   -------
  372. Picture display. INTERNAL - does NOT need any "Show" program. Works on
  373. most wellbehaved ILBM files. Based on UShow2.asm logic.
  374.  
  375.   ZAPALL
  376.   ------
  377. Mass directory-and-related-files delete. Works two ways.
  378.  
  379. 1) If a directory name IS highlighted when ZAPALL is selected, it assumes
  380.    you want to delete that directory AND ALL FILES AND SUBDIRECTORIES IN IT.
  381.  
  382. 2) If NO directory name highlighted, it assumes you want to delete CONTENT
  383.    of the directory (or device) in the S gadget, including ALL files and
  384.    subdirectories, BUT NOT directory itself. (This leaves an empty, but
  385.    existing, directory.
  386.  
  387. Example:
  388. 1) Delete all files in df1:devs (but not df1:devs itself). Put df1:devs
  389.    in S and go. This leaves an empty df1:devs as the S directory.
  390. 2) Delete its files AND IT, TOO. Put 'df1:' in S and select 'devs'
  391.    with one click. Then hit ZAPALL twice (once to select ZAPALL, once to
  392.    CONFIRM ZAPALL), and all the files and directories in 'devs' will be
  393.    deleted, then devs will be deleted (unless it is ASSIGNed to devs:).
  394.  
  395. Gives message area progress reports. Deletes files alphabetically backward,
  396. recursing into directories as encountered.  Watch and see.
  397.  
  398.   R+ R-
  399.   -----
  400. Scroll R history.  READ 'HISTORY' EXPLANATION.
  401.  LEFT mouse  = +
  402.  RIGHT mouse = -
  403.  
  404.   f->R  f->D
  405.   ----  ----
  406. Move FIRST highlighted file (OR directory) into indicated gadget.
  407.  RIGHT mouse on f->D = CONCAT the first item into D (with / if needed).
  408.  
  409.   R->S  R->D  etc.
  410.   ----  ----
  411. Copy current gadget contents around. If R involved, affected history item
  412. is updated. IF S involved, it is treated like a new entry.
  413.  
  414.   R<->S  etc.
  415.   -----
  416. Two-way swaps of gadget content. S<->D is the old SWAP command. If S is
  417. involved, it will be treated as though typed in fresh. If R gadget is
  418. involved, affected history item is updated.
  419.  
  420. +++++++++++++++++++++
  421. TOGGLE (FLAG) GADGETS
  422. +++++++++++++++++++++
  423.  
  424.   PROTECT/ERASE/REPLACE
  425.   ---------------------
  426. Indicates protection used for files at destination end of COPY and MOVE.
  427. (Not honored by COPYALL, COPYif, or ZAPALL, which must be confirmed.)
  428.  
  429.  1. PROTECT - Don't continue if same name file EXISTS at destination.
  430.  2. ERASE   - Don't care about file of same name at destination.
  431.  3. REPLACE - Don't continue UNLESS file of same name EXISTS at destination.
  432.  
  433.   DevNAME/VolNAME
  434.   ---------------
  435. Indicates what type of names S gadget will use.
  436.  
  437.  1. DevNAME -  df0:??  df1:?? etc. will be used.
  438.  2. VolNAME -  disk names (MyVol:??) will be picked up.
  439.  
  440. May be useful where one drive swaps are involved.
  441.  
  442. Drawback in VolNAME mode. ASSIGNed names like devs: can't be used. Program
  443. assumes you want Volume Name of the disk that ASSIGNed device is on and
  444. goes to the root expressed as volume name.
  445.  
  446.   SIZES/DATES
  447.   ===========
  448. Indicates what to display about files. Changes when hit.
  449.  
  450.  1. SIZES - byte file size will show.
  451.  2. DATES - creation dates will show.
  452.  
  453.  
  454.   SysDATE/OldDATE
  455.   ===============
  456. Select date to put on copied files.
  457.  
  458.  1. SysDATE - current system date goes on copies.
  459.  2. OldDATE - creation date of source file goes on copies.
  460.  
  461.   PRT: PAR: SER:
  462.   ==============
  463. Shows destination of PRINT/HPRINT gadgets. (See Patching.)
  464.  
  465.  = - = - = - = - = MOST PEOPLE - CUT HERE = - = - = - = - = - = - =
  466.  
  467.                    PATCHING [with NewZap]
  468.  
  469. Editor name:
  470.  Change only occurrance of 'dme' (no quotes) to a null terminated string of
  471.  your choice. Space for up to a 10 character name.
  472.  
  473. Default PRINT/HPRINT output device:
  474.  Find only occurrance of PRT:<0>PAR:<0>SER:<0>.  The first is default
  475.  on startup. Swap order to your preferences, remembering to keep them 4
  476.  characters long plus nullterm.
  477.  
  478. Devices - df0: df1: ... etc.:
  479.  If you have a different named device (like nv0: or dh2: or something), you
  480.  can find the only place where the names appear in an ordered set of null
  481.  terminated strings.  THIS IS BOTH GADGET TEXT AND TEXT USED TO TRY TO LOCK
  482.  THE DEVICE. Rearrange or change what's there (with up to 4 letters each).
  483.  Whatever you put into the ram: (last) gadget will be what is logged into
  484.  first from WorkBench.  What appears in each gadget will be what the program
  485.  tries to access and CurrentDir to when it is selected. Be careful.
  486.